package com.seanLab.tool.TagSuggestModel;

import com.seanLab.domain.TagInfo;

import java.util.List;

/***
 * 混合各来源关键词，采用平均混合策略或加权平均策略等
 */
public abstract class ModelKernel {
    /***
     * 为带图文章推荐关键词
     * @param features 不同来源的关键词列表
     * @param rawInfoTypes 各个来源分类
     * @param num 返回关键词数目
     * @return
     */
    public abstract List<TagInfo> suggestTag(List<Feature> features, RawInfoType[] rawInfoTypes, int num);

    /**
     * 为无图文章推荐关键词
     * @param features 不同来源的关键词列表
     * @param rawInfoTypes 各个来源分类
     * @param num 返回关键词数目
     * @return
     */
    public abstract List<TagInfo> suggestTagForArticle(List<Feature> features, RawInfoType[] rawInfoTypes, int num);

    /***
     * 为无图文章推荐关键词，仅考虑标题中出现的关键词
     * @param features 不同来源的关键词列表，该方法仅包含两个来源：标题、内容
     * @param rawInfoTypes 各个来源分类
     * @param num 返回关键词数目
     * @return
     */
    public abstract List<TagInfo> suggestTagForArticleFromTitle(List<Feature> features, RawInfoType[] rawInfoTypes, int num);
}
